improvement(files): update execution for passing base64 strings#2906
Merged
icecrasher321 merged 10 commits intostagingfrom Jan 21, 2026
Merged
improvement(files): update execution for passing base64 strings#2906icecrasher321 merged 10 commits intostagingfrom
icecrasher321 merged 10 commits intostagingfrom
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Contributor
Greptile SummaryThis PR implements base64 string hydration for file outputs during workflow execution, enabling downstream blocks to access file content directly without additional fetches. Key Changes:
Architecture:
Confidence Score: 4/5
Important Files Changed
Sequence DiagramsequenceDiagram
participant Client
participant ExecuteRoute as /api/workflows/[id]/execute
participant ExecutionCore
participant BlockExecutor
participant FileParseAPI as /api/files/parse
participant Storage as Execution Storage
participant Redis as Redis Cache
Client->>ExecuteRoute: POST (includeFileBase64: true)
ExecuteRoute->>ExecutionCore: executeWorkflowCore()
ExecutionCore->>BlockExecutor: execute block (e.g., File Parser)
BlockExecutor->>FileParseAPI: parse file
FileParseAPI->>Storage: uploadExecutionFile()
Storage-->>FileParseAPI: UserFile (with key)
FileParseAPI-->>BlockExecutor: ParseResult with UserFile
Note over BlockExecutor: if includeFileBase64 && containsUserFileWithMetadata
BlockExecutor->>Redis: cache.get(file)
alt Cache hit
Redis-->>BlockExecutor: base64 string
else Cache miss
BlockExecutor->>Storage: downloadFileFromStorage()
Storage-->>BlockExecutor: Buffer
BlockExecutor->>BlockExecutor: bufferToBase64()
BlockExecutor->>Redis: cache.set(file, base64, ttl)
end
BlockExecutor-->>ExecutionCore: output with UserFile.base64
ExecutionCore-->>ExecuteRoute: ExecutionResult
ExecuteRoute->>ExecuteRoute: hydrateUserFilesWithBase64(output)
ExecuteRoute->>Redis: cleanupExecutionBase64Cache(executionId)
ExecuteRoute-->>Client: Response with base64 hydrated files
|
Collaborator
Author
|
@cursor review |
Collaborator
Author
|
@cursor review |
Collaborator
Author
|
@cursor review |
Collaborator
Author
|
@cursor review |
waleedlatif1
added a commit
that referenced
this pull request
Jan 21, 2026
* fix(google): wrap primitive tool responses for Gemini API compatibility (#2900) * fix(canonical): copilot path + update parent (#2901) * fix(rss): add top-level title, link, pubDate fields to RSS trigger output (#2902) * fix(rss): add top-level title, link, pubDate fields to RSS trigger output * fix(imap): add top-level fields to IMAP trigger output * improvement(browseruse): add profile id param (#2903) * improvement(browseruse): add profile id param * make request a stub since we have directExec * improvement(executor): upgraded abort controller to handle aborts for loops and parallels (#2880) * improvement(executor): upgraded abort controller to handle aborts for loops and parallels * comments * improvement(files): update execution for passing base64 strings (#2906) * progress * improvement(execution): update execution for passing base64 strings * fix types * cleanup comments * path security vuln * reject promise correctly * fix redirect case * remove proxy routes * fix tests * use ipaddr * feat(tools): added textract, added v2 for mistral, updated tag dropdown (#2904) * feat(tools): added textract * cleanup * ack pr comments * reorder * removed upload for textract async version * fix additional fields dropdown in editor, update parser to leave validation to be done on the server * added mistral v2, files v2, and finalized textract * updated the rest of the old file patterns, updated mistral outputs for v2 * updated tag dropdown to parse non-operation fields as well * updated extension finder * cleanup * added description for inputs to workflow * use helper for internal route check * fix tag dropdown merge conflict change * remove duplicate code --------- Co-authored-by: Vikhyath Mondreti <vikhyath@simstudio.ai> * fix(ui): change add inputs button to match output selector (#2907) * fix(canvas): removed invite to workspace from canvas popover (#2908) * fix(canvas): removed invite to workspace * removed unused props * fix(copilot): legacy tool display names (#2911) * fix(a2a): canonical merge (#2912) * fix canonical merge * fix empty array case * fix(change-detection): copilot diffs have extra field (#2913) * improvement(logs): improved logs ui bugs, added subflow disable UI (#2910) * improvement(logs): improved logs ui bugs, added subflow disable UI * added duplicate to action bar for subflows * feat(broadcast): email v0.5 (#2905) --------- Co-authored-by: Vikhyath Mondreti <vikhyathvikku@gmail.com> Co-authored-by: Vikhyath Mondreti <vikhyath@simstudio.ai> Co-authored-by: Emir Karabeg <78010029+emir-karabeg@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Hydrate base64 strings into outputs during execution.
Type of Change
Testing
Tested manually
Checklist